This function performs bilinear interpolation on a grid field. It assumes that the pixel data values are uniformly spaced which is strictly true only for an infinitesimally small region of the globe but is a good approximation for a sufficiently small region. The default position of the pixel value is pixel center, however if the pixel registration has been set to 1 (with the EOS_GD_DEFPIXREG function) then the value is located at one of the four corners specified by the EOS_GD_DEFORIGIN routine.
All entries along the non-geographic dimensions (i.e., NOT XDim and YDim) are interpolated and all interpolated values are returned as FLOAT64. The reference for the interpolation algorithm is Numerical Recipes in C (2nd ed). (Note for the current version of this routine, the number type of the field to be interpolated is restricted to 22, 24, 5, 6.)
Result = EOS_GD_INTERPOLATE(gridID, Interp, lonVal, latVal, fieldname, interpVal)
Returns size in bytes of interpolated data values if successful and FAIL(–1) otherwise.
Grid id (long) returned by EOS_GD_CREATE or EOS_GD_ATTACH
Number of interpolation points (long).
Longitude of interpolation points (double array).
Latitude of interpolation points (double array).
The field (string) from which to interpolate data values.
A named variable that will contain the (double) interpolated data values.
None
To interpolate the Spectra field at two geographic data points:
lonVal[0] = 134.2d
latVal[0] = -20.8d
lonVal[1] = 15.8d
latVal[1] = 84.6d
bufsiz = EOS_GD_INTERPOLATE(gridID, 2, lonVal, latVal, $
"Spectra", interpVal)
5.2 |
Introduced |